package com.ld.common.plugin;

import java.util.Date;

import com.ld.shieldsb.common.core.util.StringUtils;

import lombok.Data;

@Data
public class PluginInfo {
    private String name; // 名字
    private Date loadTime; // 加载时间

    private String className; // 插件类名称
    private String classNameSimple; // 插件类名称
    private String resourcePath; // 插件类所在资源路径（如jar包路径）
    private Plugin plugin; // 插件类所在资源路径（如jar包路径）

    public PluginInfo(String name, Plugin plugin) {
        this.name = name;
        this.plugin = plugin;
    }

    public String getClassName() {
        if (className == null) {
            className = plugin.getClass().getName();
        }
        return className;
    }

    public String getClassNameSimple() {
        if (classNameSimple == null) {
            classNameSimple = plugin.getClass().getSimpleName();
        }
        return classNameSimple;
    }

    public String getResourcePath() {
        if (resourcePath == null) {
            String clssSimpleName = plugin.getClass().getSimpleName();
            String resource = plugin.getClass().getResource(clssSimpleName + ".class").getFile();
            resourcePath = StringUtils.substringBefore(resource, "!");
        }
        return resourcePath;
    }

    public String getSimpleResourcePath() {
        if (resourcePath != null) {
            return StringUtils.substringAfterLast(resourcePath, "/");
        }
        return null;
    }

}
